Termination in Impure Concurrent Languages
نویسندگان
چکیده
An impure language is one that combines functional and imperative constructs. We propose a method for ensuring termination of impure concurrent languages that makes it possible to combine term rewriting measure-based techniques with traditional approaches for termination in functional languages such as logical relations. The method can be made parametric on the termination technique employed on the functional part; it can also be iterated. We illustrate the method in the case of a π-calculus with both functional and imperative names, and show that, with respect to previous approaches to termination, it allows us to extend considerably the set of processes that can be handled. The method can also be applied to sequential languages, e.g., λ-calculi with references.
منابع مشابه
Termination in impure functional languages
In this paper, an impure language is one that combines functional and imperative constructs. The language may be sequential or concurrent. We present a method for ensuring termination of impure languages that makes it possible to combine term rewriting measure-based techniques with traditional approaches for termination in functional languages such as logical relations. The method can be made p...
متن کاملSecure Information Flow in Orc (DRAFT)
Secure information flow attempts to verify that programs do not leak information to unauthorized third parties. Previous approaches to secure information flow have considered classical sequential languages and concurrent languages based on channels. In this work, we demonstrate how techniques from secure information flow can be used to verify security properties of structured concurrent workflo...
متن کاملNetwork Protocol Programming in Haskell
Over seven years, we have developed several network protocol libraries including anti-spam, DNS, HTTP/1.1, HTTP/2 and TLS 1.3 in Haskell. Based on these experiences, we regard Haskell as a safe and highly-concurrent network programming language thanks to its strong type system and lightweight threads (i.e. green threads). This paper describes advantages and disadvantages of Haskell and reports ...
متن کاملTermination in Higher-Order Concurrent Calculi
We study termination of programs in concurrent higherorder languages. A higher-order concurrent calculus combines features of the λ-calculus and of the message-passing concurrent calculi. However, in contrast with the λ-calculus, a simply-typed discipline need not guarantee termination; and, in contrast with message-passing calculi such as the π-calculus, divergence can be obtained even without...
متن کاملExtending Non-Termination Proof Techniques to Asynchronously Communicating Concurrent Programs
Currently, no approaches are known that allow for non-termination proofs of concurrent programs which account for asynchronous communication via FIFO message queues. Those programs may be written in high-level languages such as Java or Promela. We present a first approach to prove nontermination for such programs. In addition to integers, the programs that we consider may contain queues as data...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010